Computer networks have become widely popular throughout business and industry. They may be used to link multiple computers within one location or across multiple sites.
The network provides a communication channel for the transmission of data, or traffic, from one computer to another. Network uses are boundless and may include simple data or file transfers, remote audio or video, multimedia conferencing, industrial process control and more.
Perhaps the most popular network protocol is Ethernet, a local area network (LAN) specification for high-speed terminal to computer communications or computer to computer file transfers. The Ethernet communication protocol permits and accommodates data transfers across a bus, typically a twisted pair or coaxial cable. Other media for data bus exist, such as fiber optic bus or wireless bus as just two examples. For convenience, the generic term bus will be used, regardless of media type.
A typical LAN will have a number of nodes connected to and in communication with the LAN. Each node will have a network interface card (NIC) providing the communication link to the physical LAN through a drop to the LAN. Alternatively, several nodes may be connected to a network hub, or switch, through their respective network interface cards. In addition, multiple LANs may be bridged together to create larger networks.
Nodes generally comply with the OSI model, i.e., the network model of the International Standards Organization. The OSI model divides network communications into seven functional layers. The layers are arranged in a logical hierarchy, with each layer providing communications to the layers immediately above and below. Each OSI layer is responsible for a different network service. The layers are 1) Physical, 2) Data Link, 3) Network, 4) Transport, 5) Session, 6) Presentation and 7) Application. The first three layers provide data transmission and routing. The Transport and Session layers provide the interface between user applications and the hardware. The last three layers manage the user application. Other network models are well known in the art.
While the Ethernet protocol provides recovery for message collision across the network, it is incapable, by itself, of recovering from failure of network components, such as the network interface cards, drops, hubs, switches, bridges or bus. Fault tolerance is thus often needed to assure continued node-to-node communications. One approach proposed by others is to design redundant systems relying on specialized hardware for failure detection and recovery. However, such solutions are proprietary and vendor-dependent, making them difficult and expensive to implement. These hardware-oriented systems may be justified in highly critical applications, but they may not be highly portable or expandable due to their specialized nature.
Accordingly, there exists a need for cost-effective apparatus and methods to provide fault tolerance that can be implemented on existing Ethernet networks using commercial-off-the-shelf (COTS) Ethernet hardware (network interface cards) and software (drivers and protocol). Such an open solution provides the benefits of low product cost, ease of use and maintenance, compliance with network standards and interoperability between networks.